package com.stream;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class StreamDemo2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("周杰伦");
        list.add("王力宏");
        list.add("陶喆");
        list.add("林俊杰");
        /**
         * 映射
         *      如果想通过某种操作把一个流中的元素转化成新的流中的元素，可以使用 map() 方法。
         */
        Stream<Integer> stream = list.stream().map(String::length);
        stream.forEach(System.out::println);


        /**
         * 匹配
         *      anyMatch()，只要有一个元素匹配传入的条件，就返回 true。
         *      allMatch()，只有有一个元素不匹配传入的条件，就返回 false；如果全部匹配，则返回 true。
         *      noneMatch()，只要有一个元素匹配传入的条件，就返回 false；如果全部不匹配，则返回 true。
         */

        System.out.println(list.stream().anyMatch(element -> element.contains("杰")));
        System.out.println(list.stream().allMatch(element -> element.length() > 1));
        System.out.println(list.stream().noneMatch(element -> element.contains("张")));



    }
}
